package com.qidianit.mes.pojo.pro;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qidianit.mes.pojo.Workstation;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @Description:
 * @Author: YanJiRan
 * @Date: 2025/9/24 - 下午6:38
 */
@Data
public class ProschedueTask {
    /**
     * 任务id
     */
    private Long id;
    /**
     * 工单id
     */
    private Long productionOrderId;
    /**
     * 工序id
     */
    private Long processId;
    /**
     * 工艺流程id
     */
    private Long workflowId;

    /**
     * 任务编码
     */
    private String taskCode;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 工作站编号
     */
    private String workstationCode;

    /**
     * 排产数量-当前工序的所有任务的排产数量小于工单数量
     */
    private Integer scheduleQuantity;

    /**
     * 已生产数量
     */
    private Integer producedQuantity;

    /**
     * 开始生产时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startProduceTime;

    /**
     * 生产时长-1为8小时
     */
    private Integer produceDuration;

    /**
     * 预计完成时间-开始时间加生产时长
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expectedFinishTime;

    /**
     * 甘特图颜色
     */
    private String ganttColor;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime updateTime;

    /**
     * 创建人编号
     */
    private String creatorId;

    /**
     * 修改人编号
     */
    private String updaterId;

    /**
     * 删除标记(0:未删除,1:已删除)
     */
    private Integer deleteFlag;

    private Workstation workstation;

    private ProductionOrder productionOrder;

    private WorkflowProcess workflowProcess;
}
